﻿using System;
using System.Diagnostics;
using System.Linq;
using System.Windows.Forms;
using funktionsplotter.compiler;
using funktionsplotter.gui;
using funktionsplotter.rechenwerk;

namespace funktionsplotter.app
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var plotten = new Plotten(new Compilieren(), 
                                      new funktionsplotter.XGenerator.X_Werte_generieren(),
                                      new Rechenwerk());

            var gui = new FrmFunktionsplotter();

            gui.Berechnen += d =>{
                                     Trace.TraceInformation("Berechnen: {0}", d.Item1);
                                     var xywerte = plotten.Process(d);
                                     gui.Display(xywerte);
                                 };

            Application.Run(gui);
        }
    }
}
